package com.linkhub.oms.admin.modules.user.accountflow.domain.dto;

import com.linkhub.oms.common.enums.mp.DocumentTypeEnum;
import com.linkhub.oms.common.enums.mp.ExpenseTypeEnum;
import com.linkhub.oms.common.enums.mp.TransactionTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 用户资金流水
 * </p>
 *
 * @author Frank
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "用户资金流水DTO", description = "用户资金流水")
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UserAccountFlowDTO implements Serializable {

    @ApiModelProperty(value = "用户id")
    private String userId;

    @ApiModelProperty(value = "交易id")
    private String transactionId;

    @ApiModelProperty(value = "交易类型： 1-支出 2-收入 3-冻结 4-解冻 ")
    private TransactionTypeEnum transactionType;

    @ApiModelProperty(value = "单据id")
    private String documentId;

    @ApiModelProperty(value = "单据类型： 1-提货单 2-订单 3-充值单 4-加工单 5-退货单")
    private DocumentTypeEnum documentType;

    @ApiModelProperty(value = "费用类型： 1-提货费 2-仓储费 3-操作费 4-充值 5-运费 6-加工费 7-VAT手续费 8-VAT增值税 9-挂号费")
    private ExpenseTypeEnum expenseType;

    @ApiModelProperty(value = "金额")
    private BigDecimal amount;
    /**
     * 币种默认 USD
     */
    @ApiModelProperty(value = "剩余金额")
    private BigDecimal remainingBalance;

}
